package com.hllxd.hism.star.basic.service.model.order;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Data
public class ProductTransferOrderMaster {
    private Long transOrderID;
    private List<String> transOrderIDList;
    private String transOrderType;
    private String transOrderKey;
    private String transOrderTitle;
    private String contractCode;
    private Long sellerOrgID;
    private String sellerOrgName;
    private String sellerRootOrgName;
    private Long empID;
    private Integer orgType;
    private Long sellerEmpID;
    private String sellerEmpName;
    private String sellerEmpMobile;
    private String sellerCpyMail;
    private Long buyerOrgID;
    private String buyerOrgName;
    private Long linkShopCustomerID;
    private Long linkShopBizOppID;
    private Long orgID;
    private BigDecimal transOrderTotalMoney;
    private BigDecimal transOrderProductSumTotalMoney;
    private BigDecimal transOrderDiscountMoney;
    private BigDecimal transOrderPaidMoney;
    private BigDecimal transOrderWaitMoney;
    private BigDecimal transOrderCostMoney;
    private BigDecimal transOrderEnableMoney;
    private BigDecimal transInvoiceEnableAmount;
    private BigDecimal productUnitSalesPriceTotal;
    private BigDecimal productUnitSalesPriceSTotal;
    private BigDecimal productUnitSalesDiffTotal;
    private String transInvoiceTitle;
    private String transInvoiceRemark;
    private BigDecimal transInvoiceWaitAmount;
    private BigDecimal transInvoiceOpenedAmount;
    private BigDecimal transOrderVirtualDividedAddAmount;
    private String transOrderRemark;
    private Integer transOrderPayStatus;
    private Integer transOrderOutStoreStatus;
    private String transOrderOutStoreRemark;
    private String transPayRemark;
    private Long transOrderServiceStartDate;
    private Long transOrderServiceEndDate;
    private Integer transNewAddGroupCount;
    private Integer transNewAddShopCount;
    private Integer payBatchCount;
    private String createBy;
    private String lastUpdateBy;
    private Integer orderStatus;
    private Long reviewSubmitTime;
    private Long reviewEmpID;
    private String reviewEmpName;
    private Long reviewTime;
    private Integer reviewStatus;
    private Integer reviewWay; // 审核方式 0 - 人工审核；1 - 系统审核
    private String reviewRemark;
    private Integer action;
    private Long createTime;
    private Long actionTime;
    private Integer productType;
    private String cpyOrgID;
    private String deptOrgID;
    private String teamOrgID;
    private List<ProductTransferOrderProductDetail> productTransferOrderProductDetailList;
    private ProductTransferOrderPayDetail productTransferOrderPayDetail;
    private List<ProductTransferOrderPayDetail> productTransferOrderPayDetailList;
    private String productTransferOrderProductDetailListStr;
    private String productTransferOrderPayBatchListStr;
    private String attachmentDetailListStr;
    private Long transOrderSignedDate;
    /**
     * <p> 含义：签约结束日期 </p>
     * <p> 用途：用于渠道合作协议，确定合作结束日期，结束后需要有后续操作，且需要写入代理商表中 </p>
     */
    private Long transOrderEndDate;
    private Long transOrderEndDateFrom;
    private Long transOrderEndDateTo;
    private Long transOrderInvalidDate;//作废日期，用于渠道合作协议作废
    private BigDecimal transOrderRefundMoney;//退款金额，渠道合作协议作废作废，申请退款金额
    private Long transOrderSignedDateFrom;
    private Long transOrderSignedDateTo;
    private String linkShopCustomerName;
    private String linkAgentName;
    private Long productID;
    private String productName;
    private String transOrderPaidMoneyRate;
    private Integer attachmentNum;
    private Boolean isAll;
    private Boolean isSellerEmp;
    private Boolean isWhole;
    private List<String> sellerEmpIDList;
    private List<Integer> transOrderPayStatusList;
    private List<Integer> openInvoceStatusList;
    private Integer progressStatus;
    private List<Integer> orderStatusList;
    private List<Integer> reviewStatusList;
    private List<String> transOrderTypeList;
    private String processInstanceID;
    private String processInstanceModifyID;
    private String taskID;
    private String taskModifyID;
    private String taskCandidateID;
    private String taskCandidateOrgID;
    private String taskCandidateOrgType;
    private String taskCandidateName;
    private Integer taskType;
    private String transOrderBrandName;
    private BigDecimal productUnitCostPriceTotal;
    private BigDecimal transOrderGrossProfitMoney;
    private String contractFileCode;
    private BigDecimal transOrderPerformanceMoney;
    private BigDecimal transOrderNetProfitMoney;
    private Long transOrderPaidTime;
    private Integer checkType;
    private Integer reviewType;
    private Integer isDeletable;
    private BigDecimal softwareWaitMoney;
    private BigDecimal hardwareWaitMoney;
    private BigDecimal serviceWaitMoney;
    private BigDecimal flowWaitMoney;
    private BigDecimal marginWaitMoney;
    private BigDecimal softwareSalesMoney;
    private BigDecimal hardwareSalesMoney;
    private BigDecimal serviceSalesMoney;
    private BigDecimal flowSalesMoney;
    private BigDecimal marginSalesMoney;
    private BigDecimal softwareCostMoney;
    private BigDecimal hardwareCostMoney;
    private BigDecimal serviceCostMoney;
    private BigDecimal flowCostMoney;
    private BigDecimal marginCostMoney;
    private BigDecimal softwarePaidMoney;
    private BigDecimal hardwarePaidMoney;
    private BigDecimal servicePaidMoney;
    private BigDecimal flowPaidMoney;
    private BigDecimal marginPaidMoney;
    private BigDecimal softwareOpenedMoney;
    private BigDecimal hardwareOpenedMoney;
    private BigDecimal serviceOpenedMoney;
    private BigDecimal flowOpenedMoney;
    private BigDecimal marginOpenedMoney;
    private BigDecimal payAmountTotal;
    private BigDecimal transInvoiceAmountTotal;
    private BigDecimal transOrderFixedCostMoney;
    private Long transOrderStartPerformanceDate;
    private BigDecimal reviewCostTime;
    private BigDecimal transOrderStartPerMinPaidMoney;
    private BigDecimal transOrderReviewMoney;
    private Boolean forUpdate;
    private String transOrderModifyType;
    private BigDecimal transOrderModifyTotalMoney;
    private String transOrderModifyRemark;//订单变更原因,包含渠道合作协议作废原因
    private String transOrderModifyAttachmentFile;
    private Integer transOrderModifyCount;
    private Integer orderMasterReviewType;
    private String empName;
    private Long reviewSubmitTimeFrom;
    private Long reviewSubmitTimeTo;
    private Long supportSalesEmpID;
    private Integer orderMasterNum;
    private String resultJson;
    private Long startRunDateFrom;
    private Long startRunDateTo;
    private String transInvoiceRemarkJSON;
    private String version;
    private Boolean forModify;
    private BigDecimal agentCashMoney;
    private String transOrderTriggerJSON;
    private Integer transOrderTriggerStatus;
    private Integer hasContractFileCode;
    private String payChannelName;
    private String prePayInfo;
    private boolean allTransOrderType;
    private Integer transInvoiceOpenStatus;
    private Long transOrderMasterID;
    private Integer transOrderFrameType;
    private Long transOrderOutStoreReturnEndDate;
    private Integer transOrderOutStoreReturnStatus;
    private String parentContractCode;
    private Long transOrderOutStoreActualReturnDate;
    private boolean withInvoice;
    private Integer transOrderOutStoreReturnDateDiff;
    private List<ProductTransferOrderMaster> childOrderMasterList;
    private ProductTransferOrderMaster parentOrderMaster;
    private boolean ignoreHTZF;
    private String transOrderTypeStr;
    private String transOrderPayStatusStr;
    private String orderStatusStr;
    private Integer transOrderSignedDateType;
    private BigDecimal transOrderGrossProfitRate;
    private Integer obbTurnStatus;
    private List<Integer> transOrderTriggerStatusList;
    private Integer refundType;
    private String sellerEmpIDStr;
    private BigDecimal transOrderAlreadyPerformanceMoney;
    private BigDecimal transOrderProfitMoney;
    private String reviewEmpMobile;
    private String reviewOrgName;
    private Long reviewMEmpID;
    private String reviewMEmpName;
    private Integer settleID;
    private String settleName;
    private String transOrderModifyHistoryAttachmentFile;
    private String transOrderModifyHisAttachmentFile;
    private Long transOrderStartPerformanceDateFrom;
    private Long transOrderStartPerformanceDateTo;
    private String contractCodeOBB;    // 设备借用原编号
    private String productCategoryType; // SSO订单，产品类别，电子发票:ELECTRONIC_INVOICE_FLOW
    private String accountNo;   // 权益账户信息
    private String accountName; // 权益账户信息
    private BigDecimal smsFlowWaitMoney;
    private BigDecimal payFlowWaitMoney;
    private BigDecimal invoiceFlowWaitMoney;
    private BigDecimal idFlowWaitMoney;
    private BigDecimal redPacketFlowWaitMoney;
    // 商城返佣流量包待收款或待开票金额（smr：shoppingMallRebate）
    private BigDecimal smrFlowWaitMoney;
    /**
     * <p> 含义：按效果付费流量包待收款或待开票金额（arp：according to result pay） </p>
     * <p> 用途：商户中心使用，我们这边暂时不支持 </p>
     */
    private BigDecimal arpFlowWaitMoney;
    /**
     * <p> 含义：三方支付流量包待收款或待开票金额（tp:triple pay） </p>
     * <p> 用途：商户中心使用，我们这边暂时不支持 </p>
     */
    private BigDecimal tpFlowWaitMoney;
    private BigDecimal smsFlowSalesMoney;
    private BigDecimal payFlowSalesMoney;
    private BigDecimal invoiceFlowSalesMoney;
    private BigDecimal productYJOutAmount;
    private BigDecimal idFlowSalesMoney;
    private BigDecimal redPacketFlowSalesMoney;
    // 商城返佣流量包售卖金额（smr：shoppingMallRebate）
    private BigDecimal smrFlowSalesMoney;
    /**
     * <p> 含义：按效果付费流量包售卖金额（arp：according to result pay） </p>
     * <p> 用途：商户中心使用，我们这边暂时不支持 </p>
     */
    private BigDecimal arpFlowSalesMoney;
    /**
     * <p> 含义：三方支付流量包售卖金额（tp:triple pay） </p>
     * <p> 用途：商户中心使用，我们这边暂时不支持 </p>
     */
    private BigDecimal tpFlowSalesMoney;
    private Long contractorID;
    private String contractorName;
    private String keywords;
    private String claimReason;
    private Boolean parentIsFrame;
    private Integer updateCount;
    private Integer remainAddShopCount;
    //未归还产品价值
    private BigDecimal needReturnMoneySum;
    private Long rebateDay;
    private BigDecimal transOrderGrossProfit;
    private Integer customizeQueryType;
    //组织机构
    private String ClaimCpyOrgName;
    //订单产品详情
    private String productDetail;
    //借用订单产品详情
    private String borrowProductDetail;
    //已开集团数
    private Integer groupNumber;
    //已开门店数
    private Integer shopNumber;
    //公司机构-组织机构-个人
    private String sellerEmpNameDetail;
    private String productVersionType;
    private Long productVersionID;
    //已确认收款金额
    private BigDecimal confirmPayAmount;
    private String authType;  // 授权类型
    private Integer missions;   // 任务数
    private Integer rebateRuleID;  // 返佣规则ID
    private String rebateRuleName;
    private String authVersionType;//版本属性
    private String authVersionName;//版本类型名称
    private Long authVersionID;//版本ID
    private transient int helpFlag;   // 辅助标记字段，不关联数据库，也不对外暴露这个字段(Grpc)，在业务处理时进行区分
    //0表示默认 2 表示当前关联的联系人已经存在于人事系统中 1表示当前关联的联系人没在人事系统中
    //关联集团和关联店铺信息
    private Long groupID;
    private String groupName;
    private String linkShopIDs;
    private String linkYGDContractCode;//预购单订单编号
    private String linkOldSalesContractCode;//原销售订单编号
    private Integer preOrderStatus;//预购单状态 0：无，1：正常，2：已转为服务订单，3：作废
    private Long earliestPassTime;// 最早审核通过时间
    private List<Long> sellerOrgIDList;

    // 电子合同新加字段
    private Long masterID; // 主订单ID
    private String masterCode; // 主订单编号

    private String modifyContractOnLineFlag;//区分新旧合同标识，old：以前的合同 new：上线电子合同后创建的合同
    private Integer contractForm;//合约介质,0：纸质合同-老版 1：纸质合同-新版 2：电子合同
    private Long eleContractItemID;//电子合同ID
    private Long contractModelID;//电子合同模板ID
    private Integer contractSignedSubjectType;//签约主体类型，0：个人  1：企业法人  2：企业委托人
    private String contractSignedSubjectEmpName;//签约人姓名
    private String contractSignedSubjectMobile;//签约人手机号
    private String certificateType;//证件类型，0：身份证（限中国大陆居民）1：护照（限境外人士） 2：中国香港居民-来往内地通行证  3：中国澳门居民-来往内地通行证  4：中国台湾居民-来往内地通行证
    private String certificateNo;//证件号码
    private String groupAttorneyLetterUrl;//企业委托函，当签约主体类型为企业委托人
    private String certificatePhotoUrl;//证件类型选择为非身份证类型时，需上传证件照片(渠道合作协议必须上传)
    private String businessCertificateUrl;//企业营业执照
    private String supplementaryAgreement;//补充协议
    private String paymentInstruction;//付款说明
    private String paymentWay;  // 付款方式
    private String contractArticleContent;//合同条款内容
    private String lessProductMinPriceInstruction;//最低售价说明
    private String taxpayerNo;//甲方统一社会信用代码
    private String contractCustomerMobile;//合同甲方电话
    private String contractCustomerAddress;//合同甲方地址
    private String contractId;//上上签返回的电子合同ID
    private Boolean needLawWorker; // 需要法务审核
    private String encryptedTransOrderID;//加密后的合同ID
    private Long contractSigningTime;//合同成为签约中状态的时间
    private String contractDiffSigningTimeStr;//合同成为签约中状态的时间与当前时间的差值
    private String legalPersonName;//实名认证的法人名称
    private String legalPersonCertificateNo;//实名认证的法人身份证号
    private String mailTo; // 电子合同预览--需要发送到的邮箱地址
    private String eleContractUrl;
    private ProductTransferOrderProductDetail productInfoDetail;
    private ProductTransferOrderPayDetail productPayInfoDetail;
    private String productGiftInstruction;//产品赠品说明
    private String licensedSoftwareScope;//许可软件适用范围
    private Long belongChannlEmpID;//如果为渠道商，记录该渠道商由哪一个渠道部员工负责维护
    private String companyCityCode;//公司所在城市编码
    private String contractModelName;//电子合同模板名称
    private Boolean excludeMaster; // 是否排除主合同，用于根据masterID查询
    private Integer variable; // 电子合同是否可变更
    private String businessOpportunityIDs; // 商机ID

    private Long reviewTimeFrom;
    private Long reviewTimeTo;
    /**
     * <p> 含义：代理商任务列表 </p>
     * <p> 用途：用去渠道合作协议 </p>
     */
    private String agentTaskListStr;
    private String masterContractCode;//原合同编号

    /**
     * <p> 含义：应收账款变更标识，0：无，1：变更通过 </p>
     * <p> 用途：应收账款变更的自定义审批通过之后，要求在web端的合同详情页进行标识 </p>
     */
    private Integer receivableModify;
    private Long contractRemainAuthNum;//合同剩余可授权数量
    private Boolean isHighAppVersion;//是否大于等于app版本

    private Boolean tmpFlag;
    private List<Integer> contractFormList;//合约介质list
    private String productCategoryGroup;//产品分组

    private String transOrderIDListStr;

    private Map<String, Object> newEmpInfo;
    private Map<String, Object> OpeEmpInfo;
    // 标签
    private Boolean lessProductMinPriceFlag; //产品价格超限
    private Boolean giftFlag;    //存在赠品
    private Boolean supplementaryAgreementFlag; //补充条款
    private String sellerOrgNameDetail;//拼接公司名称-所属部门或组名称

    /**
     * 查询的客户类型 1:客户管理 ,2:渠道客户管理
     */
    private Integer queryCustomerType;

    /**
     * <p> 含义：支付宝费率 </p>
     * <p> 用途：合同中费率的维护、开户关联合同时需要取费率写入集团属性中 </p>
     */
    private BigDecimal alipayRate;
    /**
     * <p> 含义：微信支付费率 </p>
     * <p> 用途：合同中费率的维护、开户关联合同时需要取费率写入集团属性中 </p>
     */
    private BigDecimal weChatPaymentRate;
    private Boolean enjoyAgentPrice; //合同所属销售是否享受渠道价
    private String openAccountType;//开户授权类型 XJTLS：新集团连锁开户 YYJTXD：已有集团开新店 RSCPSQ：人事产品授权 CWCPSQ：财务产品授权 DDDCPSQ：订多多产品授权
    private Boolean isNotInProducts;//排除产品标识，开户类型为新集团开户、已有集团授权时，不得选择软件产品-HLL-HRM（通勤）、软件产品-HLL-FMS（财务管理）、以及HLL-DDD(订多多)分类的产品
    private List<Long> productIDs;
    /**
     * <p> 含义：是否为测试合同订单 0：否，1：是 </p>
     * <p> 用途：用于标记测试合同，方便销管审核 和 相关数据统计 </p>
     */
    private Integer testOrder;
    private boolean upLoadPDF;//是否上传pdf
    private String expansionProductInfoListStr;//扩容产品信息字符串拼接
    /**
     * <p> 含义：续费管理分类 PRODUCT_EXPIRE_RENEW：到期续费，PRODUCT_EXPANSION：增数扩容</p>
     * <p> 用途：续费管理分类，用来区分选择的是续费，还是扩容</p>
     */
    private String renewManagementType;
    /**
     * <p> 含义：增数扩容产品IDs，选择多个扩容产品，以逗号分隔 </p>
     * <p> 用途：用于集团筛选可扩容产品 </p>
     */
    private String expansionProductIDs;
    private String service;
    private String orderKey;
}
